/*
*    Phantom Test Driver v2.0 GUI Automation Software
*    Copyright (C) 2009  John C. Van Arsdall (john@phantomtest.com)
*
*    This program is free software; you can redistribute it and/or modify
*    it under the terms of the GNU General Public License as published by
*    the Free Software Foundation; either version 2 of the License, or
*    (at your option) any later version.
*
*    This program is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*    GNU General Public License for more details.
*
*    You should have received a copy of the GNU General Public License along
*    with this program; if not, write to the Free Software Foundation, Inc.,
*    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
*/
/*
 * LineIconManager.java
 *
 * Created on March 16, 2006, 8:13 PM
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package ssi_linenumberview;

import javax.swing.ImageIcon;
import java.awt.Image;
import java.util.Vector;

/**
 *
 * @author John
 */
public class LineIconManager {
    
    /** Creates a new instance of LineIconManager */
    Vector<LineIcon> LineIcons;
    
    public LineIconManager() {
        LineIcons = new Vector<LineIcon>();
    }
    
    public Image getImage(int LineNumber, int Index){        
        // Vector indexing is 0 based
        
        int ctr;
        int sz = LineIcons.size();
        
        if(Index >= sz){
            return null;
        }
        
        if(Index < 0){
            return null;
        }
        
        LineIcon anIcon;
        
        for(ctr = Index; ctr < sz; ctr++){
            anIcon = (LineIcon)LineIcons.get(ctr);
            if(anIcon.m_LineNum == LineNumber){
                Index = ctr;
                return anIcon.m_Image;
            }
        }
        
        return null;
    }
        
    public int addIcon(LineIcon newIcon){
        if(newIcon == null){
            return 0;
        }
        
        LineIcons.add(newIcon);
        return LineIcons.indexOf(newIcon);
    }
    
    public int deleteImage(LineIcon inIcon){
        if(inIcon == null){
            return 0;
        }
        
        if(LineIcons.remove(inIcon)){
            return 1;
        }
            
        return 0;
    }
    
}
